package com.sofwin.controller;

import com.sofwin.pojo.SysDept;
import com.sofwin.service.DeptService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Controller
@RequestMapping("system/dept")
public class DeptController {

    /**
    * @Description:  部门逻辑实现接口
    * @Author: Mr.Xq
    * @Date: 2021/4/18 0018
    */
    @Autowired
    private DeptService service;

    /**
    * @Description:  实现页面跳转，显示部门信息页面
    * @Param:
    * @return: * @return: java.lang.String
    * @Author: Mr.Xq
    * @Date: 2021/4/18 0018
    */
    @RequestMapping("data")
    public String selectDepts(){
        return "dept/data";
    }

    /**
    * @Description:  初始化页面，生成所有部门信息集合，用于生出部门树
    * @Param:
    * @return: * @return: java.util.List<com.sofwin.pojo.SysDept>
    * @Author: Mr.Xq
    * @Date: 2021/4/18 0018
    */
    @RequestMapping(method = RequestMethod.GET)
    @ResponseBody
    public List<SysDept> ztreeData(){
        List<SysDept> deptList = service.selectAllDepts();
        return deptList;
    }

    /**
    * @Description:  页面显示单个部门信息详情，需要通过id查询部门信息详情
    * @Param: * @param id:  需要查询的部门信息详情的id
    * @return: * @return: com.sofwin.pojo.SysDept
    * @Author: Mr.Xq
    * @Date: 2021/4/18 0018
    */
    @RequestMapping(value = "{id}",method = RequestMethod.GET)
    @ResponseBody
    public SysDept toEdit(@PathVariable("id") Integer id){
        SysDept dept = null;
        if(id!=null && id!=0){
            dept = service.selectById(id);
        }
        return dept;
    }

    /**
    * @Description:  新增或修改部门信息详情
    * @Param: * @param dept:  新增或修改的部门信息封装
    * @return: * @return: java.util.Map 操作是否成功
    * @Author: Mr.Xq
    * @Date: 2021/4/18 0018
    */
    @RequestMapping(method = RequestMethod.POST)
    @ResponseBody
    public Map save(SysDept dept){
        boolean status = service.saveDept(dept);
        Map map = new HashMap();
        map.put("status",status);
        return map;
    }

    /**
    * @Description:  通过id删除对应的部门信息
    * @Param: * @param id:  要删除的部门信息的id
    * @return: * @return: java.util.Map 操作是否成功
    * @Author: Mr.Xq
    * @Date: 2021/4/18 0018
    */
    @RequestMapping(value="{id}",method = RequestMethod.DELETE)
    @ResponseBody
    public Map deleteDepts(@PathVariable("id") Integer id){
        boolean status = service.deleteDepts(id);
        Map map = new HashMap();
        map.put("status",status);
        return map;
    }

}
